package com.operator.Activitys.adapter;

import android.content.Context;
import android.graphics.Color;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

import com.operator.Activitys.R;
import com.operator.Activitys.adapter.base.BaseRecyclerViewAdapter;
import com.operator.Activitys.bean.CardOrder;
import com.zhy.autolayout.utils.AutoUtils;

import java.util.List;

import butterknife.Bind;
import butterknife.ButterKnife;

/**
 * 项目名称：金泽云 手机app
 * 类描述：号卡订单 适配器
 * 创建人：张飞祥
 * 创建时间：2018/5/21 13:21
 * 修改人：张飞祥
 * 修改时间：2018/5/21 13:21
 * 修改备注：
 */
public abstract class CardOrderAdapter extends BaseRecyclerViewAdapter {


    //上下文
    private Context mContext;
    //数据集合
    private List<CardOrder> mList;

    public CardOrderAdapter(Context mContext, List<CardOrder> mList) {
        super(mContext, mList);
        this.mContext = mContext;
        this.mList = mList;
    }


    @Override
    protected int getLayoutItemResId() {
        return R.layout.item_my_order;
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, final int position) {
        if (viewHolder instanceof CardOrderViewHolder) {

            //TODO 获取宽带订单 viewHolder
            final CardOrderViewHolder holder = (CardOrderViewHolder) viewHolder;
            //TODO  将数据保存在itemView的Tag中，以便点击时进行获取
            holder.itemView.setTag(position);
            //TODO  获取数据源 第 i 个 实体数据
            CardOrder order = mList.get(position);

            /**
             * 设置数据源
             */
            //订单号
            holder.tvItemOrderNumber.setText(order.getOrderId() + "");

            //TODO 审核状态
            //设置文字
            holder.tvItemOrderState.setText(order.getResState());
            if ("开卡中".equals(order.getResState()))
                holder.tvItemOrderState.setSelected(false);
            else
                holder.tvItemOrderState.setSelected(true);



            //判断客户姓名 非空
            if ( order.getCustomerName() == null || "".equals(order.getCustomerName())){
                //客户姓名
                holder.tvItemUserName.setText("无客户姓名（"+order.getCarrieroperator()+"）");
            }else{
                //客户姓名
                holder.tvItemUserName.setText(order.getCustomerName());
            }

            //号码 标题
            holder.tvItemNumberText.setText("手机号：");
            //手机号
            holder.tvItemNumber.setText(order.getTelNumber());
            //下单时间
            holder.tvItemOrderTime.setText(order.getCreateTime());

            /**
             * 审核结果
             *
             * 1.判断是否为空？
             * 2.判断内容是否通过
             * 3.根据不同的状态设置不同的样式
             */
            if (order.getResState() != null && !"".equals(order.getResState())) {
                //设置文字内容
                holder.tvItemOrderStateResult.setText(order.getResState());
                if ("已退款".equals(order.getResState())) {
                    //设置文字颜色为红色
                    holder.tvItemOrderStateResult.setTextColor(Color.parseColor("#ff0000"));
                    //设置 未通过 的图标
                    holder.ivItemOrderStateResult.setImageResource(R.drawable.ic_state_refuse);
                } else if ("开卡中".equals(order.getResState())){
                    //设置文字颜色为灰色
                    holder.tvItemOrderStateResult.setTextColor(Color.parseColor("#808080"));
                }else {
                    //设置文字颜色为绿色
                    holder.tvItemOrderStateResult.setTextColor(Color.parseColor("#44cc00"));
                    //设置 通过 的图标
                    holder.ivItemOrderStateResult.setImageResource(R.drawable.ic_state_yes);
                }
            } else {
                holder.tvItemOrderStateResult.setText("等待审核");
            }

            //TODO 设置支付状态
            //设置文字内容
            holder.tvItemOrderPay.setText(order.getPayState());
            if ("未支付".equals(order.getPayState())) {
                //设置背景 为灰色
                holder.tvItemOrderPay.setSelected(true);
                //TODO 设置按钮点击事件
                holder.tvItemOrderPay.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        setPayItemOnclick(position);
                    }
                });
            } else {
                //设置背景 为蓝色
                holder.tvItemOrderPay.setSelected(false);
            }

        }
    }

    @Override
    public RecyclerView.ViewHolder getViewHolder(View view) {
        return new CardOrderViewHolder(view);
    }


    /**
     * 支付按钮点击事件 外部设置方法
     */

    public abstract void setPayItemOnclick(int pos);

    /**
     * ViewHolder
     */
    public class CardOrderViewHolder extends RecyclerView.ViewHolder {

        //订单号
        @Bind(R.id.tv_item_order_number)
        TextView tvItemOrderNumber;
        //订单 审核状态（未审核、已审核）
        @Bind(R.id.tv_item_order_state)
        TextView tvItemOrderState;
        //订单 客户姓名
        @Bind(R.id.tv_item_user_name)
        TextView tvItemUserName;
        //账号 标题
        @Bind(R.id.tv_item_number_text)
        TextView tvItemNumberText;
        //账号
        @Bind(R.id.tv_item_number)
        TextView tvItemNumber;
        //下单时间
        @Bind(R.id.tv_item_order_time)
        TextView tvItemOrderTime;
        //审核结果状态 文字（空、允许、拒绝）
        @Bind(R.id.tv_item_order_state_result)
        TextView tvItemOrderStateResult;
        //审核结果状态 图片（空、允许、拒绝）
        @Bind(R.id.iv_item_order_state_result)
        ImageView ivItemOrderStateResult;
        //支付状态 （未支付、已支付）
        @Bind(R.id.tv_item_order_pay)
        TextView tvItemOrderPay;


        public CardOrderViewHolder(View itemView) {
            super(itemView);
            /**
             * 初始化控件
             */
            ButterKnife.bind(this,itemView);
            //屏幕适配
            AutoUtils.auto(itemView);
        }
    }
}
